The Cromemco XMM Memory Management board provided S-100 bus systems with an
efficient, highly flexible means of sharing up to 16 megabytes of memory
among several programs. In conjunction with Cromemco's XPU dual processor
board and UNIX System V Operating System, the XMM allocated memory in
4K-byte pages for up to 16 concurrent processes. Page references and
modifications were logged so that, if memory must be released for use by
another process, the operating system can either erase the least-used page
(if it has not been modified) or copy it out to a disk.
The XMM translated (or maped) each logical address generated by a program
into a physical address chosen by the operating system. This
logical-to-physical address translation, performed by a high-speed table
lookup, effectively isolated the ongoing processes from the hardware and
from each other. Each program appeared to have the entire system to itself,
and software errors were unlikely to spread from one program to another.
Each page or segment (128 pages) of memory could be shared by several users,
with varying degrees of access, or held exclusively by the supervisor or a
single user. Code and data could be separated in memory to prevent faulty
instructions, such as attempts to execute data. Sensitive data could be
restricted to read-only access, and special programs, such as compilers,
could be made accessible for execution yet remain unexaminable to all but
the supervisor.
In addition to page usage, the XMM kept track of where each page resided,
and interrupted the processor if a requested page was not in main memory
(page fault). These features support the development of virtual memory
software, which allowed a program to run with only part of its code in
memory, while the remaining pages of code were swapped to and from the disk
as needed.
Clearly a precursor to memory management seen in likes of the 80468 and
later Intel and Motorola chips.
There was also a similar board called the XMM board that worked with a board
called the XPU board. I dont currently have the manual for the above
XMU board but the XMM board was quite similar.
The technical reference manual for the XMM board can be obtained
here.
The installation manual for the XXM board can be obtained
here.